23

» WarCraft 3 / Доступность способности

Похожие вопросы:

ответ
Так ты же выключаешь триггер на 18 секунд вот он и не срабатывает.
Поставь условие, что герыч не имеет абилки-пустышки, если не имеет - дать её и через 18 сек забрать и пустить молнию.
Правда я не уверен насчёт того, отловится ли attacking unit через 18 сек вейта, проверь...
Вообще, если устраивает орбом - то даёшь "сферу молний" с эффектом "цепь молний", у которой 18 сек перезарядка(у цепи не у сферы)
ответ
Добавить в требование способностей наличие у игрока нормального героя (не морфнутого) или дамми юнита, которого нужно будет создавать или удалять.
ответ
Ты смотрел внимательно телескоп гоблинов и поставку ресурсов? Проверка каста этих способностей ведется по событию - золото игрока изменилось
ответ
RotceV,
юнит приобретает способность
приобретённая способность == Абилка А
modify hero skills point trggering unit substract 1 point
ответ
Задать рандомное число (напр: set YourNumber =random integer number between 1 and 5) и кастовать в зависимости от того что выпало

23

» WarCraft 3 / String Hash

Похожие вопросы:

ответ
Существует лимит то ли на кол-во операций, то ли на время выполнения, то ли и на то и на другое. При превышении лимита поток молча рубится.
В качестве шаманства: попробуй завернуть каждый цикл в отдельную функцию. Врядли это поможет само по себе, но зато потом проще будет переходить к следующему шагу - разнесению на отдельные потоки.
ответ
Всё, разобрался, вопрос снимаю)
ответ
Проблема возникает также при переносе вот этого вот в инициализацию триггера тест.
Но при этом если вместо строки вроде "12345" использовать, например, GetAbilityName('Aloc') - то все работает.
Это какой-то баг со строками?
Еще у меня почему-то происходит фантомный клик по центру карты в начале игры
Вобщем не стоит юзать имена функций напрямую в экзекуте и вообще таймеры лучше

23

» WarCraft 3 / Урон от способности

Похожие вопросы:

ответ
Понятно. Но в твоем случае сделать это можно только триггерно.
ответ
юнит получает урон
1 ответ на 2 вопроса
ответ
Очень-очень трудоемко. Было таких вопросов миллион. Тривиальный ответ: БД
ответ
Ghostly, используй настройки, как у Паладина в карте: xgm.guru/files/100/184321/comments/344569/Hero.w3x
ответ
у меня лично работает все проверил с твоими параметрами.

23

» WarCraft 3 / графика способности

Похожие вопросы:

ответ
Кароче. Объясняю в чём дело.
Способность "Техника" имеет прикреплённые к ней спецэффекты шипов через одноимённое заклинание (тоже "Техника").
Почему шипы видны только на "больших героях"? - потому что у них есть особые точки крепления аттачей, маунт-справа/слева (на подобии нога-левая, рука-правая).
Как убрать? - логика подсказывает что нужно зачистить соответствующие поля в эффекте "Техника", что собственно и верно... и нет...
Дело в том что скилл "Техника" относится к тем, которые имеют ошибку с изменением графических параметров в РО. (меняешь, а оно всё равно по старому отображается - например тёмная стая, стадо ящерец).
Что же делать? - берёшь стандартную технику, смотришь её стандартный эффект. Удаляешь из стандартного эффекта всю графику (теперь техника не будет давать шипы). Копируешь стандартную технику - вот твой новый скилл который уже не будет давать шипов. Готово. Работаешь с новой копией.
ответ
Нужна особая анимация, смотри внимательно анимации гулей и мясников, там вроде spell channel, у волков нету такой анимации, так что либо кастом проигрывай анимацию атаки либо делай свою модель волка с нужными анимациями, на основе стандартной.
ответ
Fireproof, попробуй в РО у юнита поменять "Графика - Анимация - обратный ход броска" и "Графика - Анимация - точка броска" на 0. Правда, это уберёт время каста для всех умений у этого юнита.
ответ
~16GB:
0.06 время жизни слишком мало ставь хотя бы 0.3
ответ
Закрыто.

23

» WarCraft 3 / Как сделать Способность по области.

Похожие вопросы:

ответ
Лови карту.
ответ
Fireproof, попробуй в РО у юнита поменять "Графика - Анимация - обратный ход броска" и "Графика - Анимация - точка броска" на 0. Правда, это уберёт время каста для всех умений у этого юнита.
ответ
Кину наработку, в триггерах разбираешься?
ЛПХОХЫОПЫ, сделано. Как делается. можно посмотреть в триггерах.
ответ
Рунные браслеты давать тем, на ком хочешь распознать тип урона(лучше всем сразу). Нет не надо... просто событие на отлов урона с проверкой что урон меньше 0 и сразу нанести такой же урон только больше 0( так как все заклинания с нанесением урона будут исцелять).
Проще говоря "браслеты", это как детект на то, что урон не может исцелять, а поскольку браслеты реагируют только на маг урон, соответсвенно любой "исцеляющий урон" и есть магическим.

23

» WarCraft 3 / удаление событий

Похожие вопросы:

ответ
надо периодически проверять, а не верить варкрафтовому событию. это одно из самых вредных событий в игре, его почти никто не использует в здравом уме
ответ
Это давно обсуждалось. вопрос удаление события
Создание триггер события — 3 утечки. Стереть переменный триггер, и минус 1. Получается остается 2 утечки.
Вот если удалить юнита (Remove unit), то он стирается из события другого триггера?
Ответ: Да есть способ: вот шпаргалка
ответ
наличия триггера на получение урона для каждого юнита
так делать нельзя
это же полный бред
просто добавляем событие к уже существующему триггеру вот и всё
нормального сборщика мусора в варе нет и скорее всего не будет(если близы даже рб поленились убрать то о нормальном gc можно забыть)
так же не стоит забывать что сборщик мусора срабатывает не сразу
если мне не изменяет память то save сохраняет объекты и значения переменных
а при загрузке восстанавливает связи (заносит значения в переменные, регистрирует события и прочее)
так что всякий мусор просто не проходит
а вообще лучше забей на это
в варе есть более серьёзные утечки от которых нельзя избавиться
например руны
+ создание и удаление триггеров вредит намного больше чем пара сотен килобайт памяти
да и вряд ли у тебя за игру будет 50к юнитов
ответ
вариант через define native-функции, то есть ее подмена для последующего отлова как события изменения реальной переменной, не совсем подходит
Даже интересно, почему?
Как уловить момент очищения handle боевой единицы?
Как вариант - периодическая проверка координат юнита по его хендлу, стали равны 0.0 / 0.0 - юнит был удалён.
Как уловить момент удаления через функцию RemoveUnit?
Вызвать нужную функцию сразу после вызова RemoveUnit, очевидно.
ответ
События триггера никак нельзя удалить, можно только удалить триггер (с кондишенами и акшенами).
А кстати вот - xgm.guru/p/wc3/venomanser
Будет несомненно полезно, как правильно удалять триггеры.
Да и вовсе полезно для общего развития.

23

» WarCraft 3 / Локальный тригер

Похожие вопросы:

ответ
Второй комп сломан поэтому проверить не могу, почему у меня подозрение, что оно должно работать....
Хотя могу и ошибаться, нормально делал карты года 2 назад.
ответ
скрин ошибки со строкой на которую ругается
а сори, плохо прочитал код
Tobi123 дело говорит
ты даже не знаешь что такое локальные переменные
короче в статьи и не вылазь от туда пока не узнаешь
ответ
Только с мемхаком, нужно подгрузить свою ддлку, которая грубо говоря от имени хоста сама хостанет следующую карту, пригласив всех игроков.
Но думаю это не так уж и просто реализуемо, а те функции что есть - только для одиночной кампании.
ответ
локальный - на машине конкретного юзера, не путать с mui/mpi (муи - действует для каждого юнита, mpi - для каждого игрока)
все баффы будут действовать, хоть их там будет штук 100 (хотя я столько еще не вешал)
тоже самое касается и тригго баффов, которые легко реализовать с помощью запрещенного спеллбука и как сказал quq_CCCP - таймера
даже если бафф не отображается, но его точно вешали на юнита - система его найдет
а если ты пытаешься сделать бафф Palus Knight из Lineage II - поиграйся с отрицательным по урону берсерком (где кстати есть и скорость бега), или со спеллом свитка скорости
хотя легче будет просто обложить юнита блокираторами прохода на время действия, потому что полную остановку сделать без костылей не удастся

23

» WarCraft 3 / Несколько интересующих вопросов

Похожие вопросы:

ответ
Отключить прочие способности - если этот параметр включен то при касте канала ты не можешь двигаться и юзать скилы.
Следовать в течении времени - точно не знаю,но предполагаю что это длительность приказа или длительность самой способности.
Тип цели - если "Цель - точка" ,то можно юзать куда угодно кроме юнитов. Если "Цель - юнит", тоже самое только на оборот.Если оба то можно кастовать и на юнита и на точку.Если"Нет цели", то способность активируется без наведения(как стомп например)
Параметры:
Изображение - отображение иконки скила
Изображение указателя - Если установить эту галку, то еще понадобится установить "Характеристики: Область воздействия" на не-нулевую величину. (например, 200). Когда вы будете прицеливаться заклинанием, на карте будет круг такого радиуса, которого вы установили(Вспомним свена из доты,круг радиуса есть,а юзать можно только на юнитов)
Материальное заклинание - при установленной галке "Изображение указателя цели" и области воздействия, равной 0, будет исчезать указатель цели, если не установлена эта галка
Универсальное заклинание - Если эта галка стоит, то заклинание будет действовать на существ, невосприимчивых к магии, если не стоит, то при касте на неуязвимого к магии юнита (например, голема) вы получите сообщение типа "Этот воин невосприимчив к магии"
Только ручное применение - Этот параметр определяет как будет использоватся заклинание если отдать приказ сразу группе юнитов с этой способностью. Если эта галка стоит, то способность использует только один из группы, если нет - то сразу вся группа.
ответ
Создаёшь массивы с координатами позиций, с типами юнитов, с самими юнитами. Если юнит из переменной помирает - создаёшь нового, заносишь в переменную вместо убитого и даёшь приказ двигаться в соответствующую точку.
ответ
  1. Ищите вопросы с GetLocalPlayer в названии.
  2. Ответ дали выше.

23

» WarCraft 3 / Получение предмета

Похожие вопросы:

ответ
Событие - получает прдмет
Условие - прдмет который надо
Действие - Создать юнит, либо замнетить(прверащение): так же вариант, когда подбирает нужный предмет, давать скил трансформа и приказать его заюать
ответ
Таурен Тауреныч, так ты ж его мгновенно удаляешь. Зачем добавлять и сразу убирать способность? Или удаляется предмет, а не скилл?
Попробуй удалять хотя бы через 0.00 сек.
Прочитал твой второй вопрос по этой теме. Всё-таки да, дело было в мгновенном удалении.
ответ
Мб твой герой не может использовать предметы?
Я сам лично сувал эту абилку в предметы и давать героям - всё работало.
И да, событие это работает. Возможно тоже допускаешь ошибки
И да, скорее всего не "подобранный предмет", а "предмет которым манипулируют".
ответ
Что мешает записывать предмет в массив, и каждые 20 сек проверять жив ли предмет, или его забрали. Если забрали, создать в нужных координатах новый...

23

» WarCraft 3 / Перезарядка предмета

Принятый ответ
Похожие вопросы:

ответ
В предмете ID кулдауна разный ставьте.
ответ
Характеристики - название.
Поставь так такую же способность, как и вшита в предмет. Тогда кд будет показываеться от выбранной способности.
ответ
Steal nerves:
Способности нужно дать юниту, и все. Если эффект временный, используем вэйт/wait (по-русски ждать) или таймеры, по истечении которого удаляем способность. Но вэйты не рекомендуются для использования.
xgm.guru/p/wc3/articles новичок, иди почитай
xgm.guru/p/wc3/needspells здесь не стол для заказов, хотя тема заброшена
xgm.guru/p/wc3/bpe где-то тут была похожее, только с баффами
можете конкретно написать, что вам нужно.
смотреть сюда
событие - юнит применяет способность
условие -применяемая способность == тип твоей способности
действие - добавить способность
ждать 15 сек.
действие - удалить способность
про локалки + таймер, хэш-таблицы
xgm.guru/p/wc3/jass_local_vars есть примерчик внизу, похожий на ваш
ответ
TeX13, можно, сделано в доте для варкравта...
Способов реализации много, от 'ANeg' (способность механика, Enginering Upgrade, рус-Техника), которым можно свапать скиллы, до таймеров которые будут удалять способность у героя а потом вручать ему снова, таким образом скидывая кулдаун, ну и так же хак на пямять, с помощью которого можно менять кулдаун как захочется, щяс все кому не лень юзают эту наработку.
ответ
Вроде активка должна стоять первой в списке способностей предмета.

23

» WarCraft 3 / Как циклом удалять точки

Похожие вопросы:

ответ
Патиссончик, про центр области не заметил
точка каждый раз создаётся заново и это утечка
Патиссончик, есть прога на сайте для записи логов
так же есть дебаг через прелоад на сайте
вот счётчик утечек
ответ
Steal nerves:
Проблема в том, что, если в этой точке построено здание, то IsTerrainPathable(x, y, PATHING_TYPE_BUILDABILITY) не помогает (это терраин проверяет, а вот то что там построено или нет ему пофиг). Посмотрел в триггерах, есть только текстуры земли - уберспласты (там эти текстурки для здания) - нет функции такой в библиотеке jngp для проверки точки. Пробовал через группу, но там своя заминка (походу выборка ловит тех юнитов, точки которых попали в выборку, а не на целиком. Точно не проверял, но не работает с группой),
Clamp, решил через проверку
if (IssueBuildOrderById(YT, 'hhou', x, y) == false) then если не может построить, значит там здание или что-нибудь еще.
Clamp, помог еще твоя ссылка ExecuteFunc. видимо у меня лимит был, не хотело работать (просто дебаг не отобрал. и раб стоял). Хотя это уже не нужно было
А да слегка подвисает на секунду =(
Урра короче без лагов сделал (версия 3), подредактировать недоработку и будет норм

23

» WarCraft 3 / Как удалить переменную типа юнит?

Похожие вопросы:

ответ
Вам сюда, господин хороший. Там есть ответы, практически, на все ваши вопросы.
ответ
Нашёл систему, где звук передаётся в таймер, который истекает через 0 секунд. В результате один и тот же звук может проигрываться несколько раз без всяких проблем. В инетике пишут мол это такой баг движка.
ответ
Всё, разобрался, вопрос снимаю)

23

» WarCraft 3 / Как бы это сделать?

Похожие вопросы:

ответ
  1. Вместо (юнит триггера) вставишь своего героя. (Скрин внизу)
  2. Редактор обьектов ---> Способности ---> нейтрально-враждебные ---> герои ---> повышение характеристик (редактируешь или создаешь нестандартную и редактируешь под себя)
Скрин...
ответ
nvc123:
GRESHNIK1, я хз как ты пробовал
у меня всё работает нормально
плавающий юнит не может быть создан на суше
у тебя же корабль скорее всего не является плавающим т.е. не является кораблём
Делал из корабля из компании. Просьба залить пример, чтобы понять что я делаю не так.
ответ
WindMaster, проверяй, что количество жизней < 1, если 0 не работает. Можно было и самостоятельно догадаться, не бог весть какая наука.

Хотя периодическая проверка - априори костыль для такой задачи.
ответ
quq_CCCP, Уже решил, нужно создать любой ии в редакторе ии, и запустить его со стартом карты. Тогда юниты применяют абилки.
ответ
Закрыто.

23

» WarCraft 3 / Редактирование карты

Похожие вопросы:

ответ
Roy Mustang:
ну у тебя там почти 1000 юнитов. конечно будет лагать, незнаю попробуй откл список кистей.
Окно - > Список кистей
ответ
Trickster, Это защита, чтобы её снять нужны познания в устройстве формата карт.
А так подобная защита очень примитивна, открыть такую карту и восстановить все в ручную не сложно, но долговато...
ответ
~8gabriel8:
  1. Поставь после действия с созданием монстра Set Variable = (Last created unit), чтобы назначить ему переменную.

23

» WarCraft 3 / Туман войны

Похожие вопросы:

ответ
Пробовать не хочу, но предложу вот, что:
Если цель - защитить карту от подглядывания. То при старте игры или инициализации (если получится) можно запустить триггер с условием Вид: карта разведана is Set == да (процитировал текст условия из Гуи), действие - замкнутый цикл, или вызвать фатальную ошибку, вылет и т.д. Суть в том, что когда игрок запустит карту с такими параметрами, то тупо закрашить варик.
ответ
Eamon Flann:
Оказывается, отрицательную высоту для летающих зданий можно устанавливать, если поставить Art - Elevation - Sample Ponts: 0
SсRealm:
А еще можно повернуть нездание а том сделать зданием и поворот останется , правда в игре может сместитьтя внезапно))
А вместе с этим способом это, вроде бы как, решило мою проблему. Спасибо всем, кто попытался помочь :)
Melissa:
И ещё заметка - делать декорации юнитами - больная идея. Если их будет сотня другая - то ещё не конец света, но несколько сотен таких "декораций" - жди проседаний в производительности.
Да там и сотни не наберется, так что все нормально :)
ответ
Может, создать области по всей карте вокруг нужных областей и поставить видимость им?
ответ
спутал, эта фунция прячет хендл, а не рисовку обеспечивает
function IsFlagBitSet takes integer flags, integer bit returns boolean
	if bit!=0 then
		return flags/bit*0x80000000 != 0
	endif
	return false
endfunction

function RMem takes integer addr returns integer
	if addr<0 or addr>0x7FFFFFFF then
		return 0
	endif
	return Memory[addr/4]
endfunction

function AddAlwaysVisibleFlag takes unit u returns nothing
	local integer a=ConvertHandle(u)
	if a>0 and IsFlagBitSet(RMem(a+0x20),0x10)==false then
		call WMem(a+0x20,RMem(a+0x20)+0x10)
	endif
endfunction
вместо юнита можно вроде любой виджет, просто смени входящий тип и проверь
ответ
pro100master:
Georgy12, call CreateFogModifierRectBJ( true, игрок, FOG_OF_WAR_VISIBLE, область)
call CreateFogModifierRectBJ( true, игрок, FOG_OF_WAR_VISIBLE, область) вот так
либо
local fogmodifier loc = CreateFogModifierRect(whichPlayer, whichFogState, r, true, false)
call FogModifierStart(loc)
ты установил Player(3) значит это 4 игрок а ты в тест карту запускает 1 игрок пойми!!!
чтобы все игроки видел облость надо циклом от 0 до 11
Понял в чем был косяк, ни одна из функций модификации видимости не имела эффекта, потому что перед ней был следующий вызов модификации тумана с параментром true:
CreateFogModifierRect(Player(i), FOG_OF_WAR_FOGGED, gg_rct_EntireMap, true, false);

23

» WarCraft 3 / Модели на заказ

Принятый ответ
Похожие вопросы:

ответ
Прятать юнита, создавать дамми с нужными способностями. Если никто не сделает, возможно вечером попытаюсь (сейчас у меня утро) сделать.
ответ
это Q/A
тут разрешены только вопросы
в следующий раз за заявки типа "сделайте мне что либо" пойдут варны

23

» WarCraft 3 / Модели на заказ

Похожие вопросы:

ответ
Прятать юнита, создавать дамми с нужными способностями. Если никто не сделает, возможно вечером попытаюсь (сейчас у меня утро) сделать.
ответ
это Q/A
тут разрешены только вопросы
в следующий раз за заявки типа "сделайте мне что либо" пойдут варны

23

» WarCraft 3 / Что означает ошибка?

Похожие вопросы:

ответ
Скорее всего просто наткнулись на фатальный баг, едва ли тут память причём-то. В мои старые карты например можно тоже фатальчик словить и необязательно после 2 часов игры) Посмотри файл ошибки в папке варика, если там часто повторяется что-нить типа A008 или U026 то дело в способности/улучшении/юните и вычислить причину легко, но не всегда ты увидишь в логе все улики...
ответ
JNGP добавляет в РО скрытые модельки/иконки, а FNWE заменяет файлы, где указаны имена этих файлов.
Перенеси этот файл в папку UI с заменой.
ответ
Вот оптимальные настройки, скорей всего в них ошибка.

23

» WarCraft 3 / Морф любого юнита

Похожие вопросы:

ответ
Impertus, не знаю точно как сработает с "Эликсиром ярости", но handleID при морфе Ворона не изменяется. Возможно, и с остальными морфами тоже. Обращайся к юниту через его ID. Как находить этот ID и что это такое можешь почитать ТУТ
ответ
Сохраняй и меняй через таймер с временем 0.00 сек.

23

» WarCraft 3 / Нестандартные способности

Похожие вопросы:

ответ
переустанови jngp тогда если не поможет то переустанавливай до тех пор пока не будет всё норм
ответ
почему так долго грузится карта
Потому что огромный Нестандартные объекты может тысяч или больше или Спелл герой до 100 уровень.
из них 60 загрузка просто висит на 1/5.
Если нетак? Проверь если есть файлы war3map.j папка Game\WarcraftIII, надо удалить файл. очень давно тоже 1 раз что за вылет или неправильно выполняет триггер.
Есть способы ускорить загрузку карты не экономя в редакторе объектов
Есть Widgetizer, там очень быстрая загрузка игра, но плохо работает спелл или текст.
ответ
Steal nerves:
Если на триггерах только, я знаю только на jass:
xgm.guru/p/wc3/179127 простое движение
внизу ссылки на темы, где обсуждают ошибки. Там решение даны, подправить надо самим
xgm.guru/forum/showthread.php?t=53841 отталкивание посложнее
xgm.guru/forum/showthread.php?t=45368 отталкивание
ответ
  1. Сделай стандартную ауру хила и при ее изучении добавляй и задавай нужный уровень ауры торнадо. У нее даже иконки нет, так что очень удобно.
  2. Я могу расписать, как, но сложно, так что пусть другие ответят, мб есть вариант проще.
  3. Если без мемхака: сделай абилу на основе предметной на повышение брони с 31 уровнем, на первом 0 повышения, на последнем +30. Что дальше делать, сам догадайся...

23

» WarCraft 3 / Общие войска: все.

Похожие вопросы:

ответ
  1. Думаю, что можно.
Берем основную модель, возможно, вообще без мяса, только с гусеницами, но с кучей точек крепления. Также берем кучу моделей-аттачметов, представляющих собой эти самые пушки, корпуса и все прочее. При выборе характеристик модели через диалог или интерфейс соответственно создаем на основной модели эффекты-аттачменты, будет собрана техника. Такие штуки, как двигатель и прочие невидные извне элементы будут скорее входить в математическую модель юнита, но это также можно запилить. Название танка - сразу не скажу, есть ли триггер на смену, но на таблице рекордов можно отобразить что угодно.

2.Тоже можно.
Создаем погодный в определенной местности и делаем два триггера для контроля входа-выхода юнитов из нее. На искомых юнитов применяем нужные способности - и все готово.

  1. Здесь чуть сложнее: нужно постоянно проверять тип местности под юнитом, но тоже можно. Проверка на ограждения тоже может бить сделана.

4.Это уже интереснее. Видел раньше подобное в играх. При каждой атаке юнита случайным образом наносим или не наносим доп. урон, эффект горения, кидаем спелл на цель в зависимости от теоретического места попадания атаки.

5.И это можно. Но нужно писать нестандартную систему Альянса. Но через триггеры и JASS все можно...

  1. Продажа техники - лучше через способность, что бы кидать ее на понравившегося юнита, не стоит покупать кота в мешке. Стоимость должна зависеть от технического уровня юнита, его текущего состояния (мертвый танк попадет вам бесплатно, сами чините!), если он был модернизован дополнительно, то это тоже входит в стоимость. Разрешение на продажу делаем аналогично.

  1. Это легко через Custom Value и переменние.

Как ты понял, все что ты предложил создать можно, но на это нужно потрать хороший кусок времени. Остается пожелать тебе удачи над созданием проекта - мне идея уже нравится.
ответ
В игровых константах поищи пункты про передачу ресурсов.
ответ
...кстати о которой, кто-нибудь таки хочет мне помочь с разработкой? Или я уж тему прикрою?
ответ
kjstilin, Изи же , вот лови
ответ
Патиссончик, про центр области не заметил
точка каждый раз создаётся заново и это утечка
Патиссончик, есть прога на сайте для записи логов
так же есть дебаг через прелоад на сайте
вот счётчик утечек

23

» WarCraft 3 / Едкое дыхание

Похожие вопросы:

ответ
Вроде крашей быть не должно но само понятие улучшение на 9999 уровней немного настораживает так как каждое такое будет нагружать карту.